package com.mango.optionaldemo;

import java.util.Optional;

/**
 * @author: Lbw
 * @date: 2024/6/25 19:41
 * @description: 测试Optional这个类
 */

//知识点
//  方法引用

public class TestOptional {

    public static void main(String[] args) {
        User user = new User("lbw", 18);

        //简单使用
        Optional.ofNullable(user).map(User::getName).ifPresent(System.out::println);

        // orElse,里面的参数就是T类型的数据
        //如果不存在，则返回数据
        Optional.ofNullable(user).map(User::getName).orElse("default");
        // orElseGet,里面的参数可以是一个方法
        Optional.ofNullable(user).map(User::getName).orElseGet(TestOptional::callApi);

        // orElseThrow,里面的参数可以是一个方法
        Optional.ofNullable(user).map(User::getName).orElseThrow(RuntimeException::new);



    }

    private static String callApi(){
        return "default";
    }


}
